/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.gob.fonafe.dao.impl.stored;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import oracle.jdbc.OracleTypes;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.StoredProcedure;
import pe.gob.fonafe.domain.BienSubastaBean;

/**
 *
 * @author czela
 */
public class ListarBienesAsignaSubastaSP extends StoredProcedure{

    private static final String PROC_PARAM="USERGLC.P_OBT_LIST_BIENES_SUBASTA";


    public ListarBienesAsignaSubastaSP(DataSource ds) {
        super(ds, PROC_PARAM);

        declareParameter(new SqlParameter("P_id_clase_subasta", Types.VARCHAR));
        declareParameter(new SqlParameter("PAR_ID_EMPRESA", Types.NUMERIC));
        declareParameter(new SqlOutParameter("cCursor", OracleTypes.CURSOR,new ListarBienesAsignaSubastaRowMapper()));
        compile();
    }

    public Map execute(String idClase, int intIDEmpresa) throws DataAccessException {
        Map inputs = new HashMap();
        inputs.put("P_id_clase_subasta", idClase);
        inputs.put("PAR_ID_EMPRESA", intIDEmpresa);
        return super.execute(inputs);
    }


    private static class ListarBienesAsignaSubastaRowMapper implements RowMapper<BienSubastaBean>{

        public BienSubastaBean mapRow(ResultSet rs, int rowNum) throws SQLException {
            BienSubastaBean bean = new BienSubastaBean();
            bean.setId(rs.getString("ID_BIEN"));
            bean.setNombre(rs.getString("NOMBRE_BIEN"));
            bean.setDescripcion(rs.getString("DESCRIPCION"));
            bean.setTipoMoneda(rs.getString("TIPO_MONEDA"));
            bean.setPrecio(rs.getString("PRECIO"));
            if(rs.getBlob("FOTO_PRINCIPAL") != null){
               bean.setFotoPrincipal(rs.getBlob("FOTO_PRINCIPAL").getBytes(1, (int)rs.getBlob("FOTO_PRINCIPAL").length()));
            }
            bean.setDireccion(rs.getString("DIRECCION"));
            bean.setNombretipo(rs.getString("NOMBRE_TIPO"));
            bean.setEstado(rs.getString("ESTADO"));
            bean.setFechaVencimiento(rs.getDate("FECHA_VENCIMIENTO"));
            bean.setUbigeo(rs.getString("UBIGEO"));
            return bean;
        }

    }


}
